package cn.tedu.carehome.foundation.service;

import cn.tedu.carehome.foundation.pojo.dto.StaffAddNewDTO;
import cn.tedu.carehome.foundation.pojo.dto.StaffLoginDTO;
import cn.tedu.carehome.foundation.pojo.vo.StaffListItemVO;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 处理员工数据的业务接口
 *
 * @author 张子豪
 * @version 0.0.1
 */
@Transactional
public interface IStaffService {

    /**
     * 员工登录
     * @param staffLoginDTO 员工的登录信息，包含：用户名，密码
     * @return 登录成功后的JWT
     */
    String login(StaffLoginDTO staffLoginDTO);

    /**
     * 添加员工
     * @param staffAddNewDTO 员工账号数据
     */
    void addNew(StaffAddNewDTO staffAddNewDTO);

    /**
     * 通过员工ID删除员工帐号
     * @param id 员工Id
     */
    void deleteById(Long id);
    /**
     * 将员工状态设置为启动状态
     * @param id 员工ID
     */
    void setEnable(Long id);

    /**
     * 将员工状态设置为禁止状态
     * @param id 员工ID
     */
    void setDisable(Long id);

    /**
     * 查询员工列表
     * @return 员工列表
     */
    List<StaffListItemVO> list();
}
